//初始化用户列表

layui.use(['layer', 'datatable', 'datatableButton', 'datatableFlash', 'datatableHtml5', 'datatablePrint', 'datatableColVis', 'datatableSelect'], function() {
  var $ = layui.jquery,
    layer = layui.layer;
  // oSort是排序类型数组, 'chinese-asc'是自己定义的类型的排序(*-asc || *-desc)名称
  // 插件应该会根据表格中的内容的类型(string, number, chinese)进行比较排序，
  // 如果以chinese类型来排序则用oSort['chinese-asc']和oSort['chinese-desc']的方法
  // oSort对应的function里面自定义比较方法
  $.fn.dataTableExt.oSort['chinese-asc'] = function(x, y) {
    //javascript自带的中文比较函数，具体用法可自行查阅了解
    return x.localeCompare(y);
  };

  $.fn.dataTableExt.oSort['chinese-desc'] = function(x, y) {
    return y.localeCompare(x);
  };
  // aTypes是插件存放表格内容类型的数组
  // reg赋值的正则表达式，用来判断是否是中文字符
  // 返回值push到aTypes数组，排序时扫描该数组，'chinese'则调用上面两个方法。返回null默认是'string'
  $.fn.dataTableExt.aTypes.push(
    function(sData) {
      var reg = /^[\u4e00-\u9fa5]{0,}$/;
      if(reg.test(sData)) {
        return 'chinese';
      }
      return null;
    }
  );
  $(document).ready(function() {
    var myTable = $('#list').DataTable({
      "processing": false, //DataTables载入数据时，是否显示‘进度’提示  
      "stateSave": true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态  
      "scrollCollapse": true, //是否开启DataTables的高度自适应，当数据条数不够分页数据条数的时候，插件高度是否随数据条数而改变  
      "paginationType": "full_numbers", //详细分页组，可以支持直接跳转到某页  
      "language": lang, //提示信息
      "autoWidth": false, //自适应宽度，
      "lengthMenu": [15, 30, 50],
      "stripeClasses": ["odd", "even"], //为奇偶行加上样式，兼容不支持CSS伪类的场合
      "searching": false, //是否允许Datatables开启本地搜索
      "paging": false, //是否开启本地分页
      "lengthChange": true, //是否允许产品改变表格每页显示的记录数
      "info": true, //控制是否显示表格左下角的信息
      //跟数组下标一样，第一列从0开始，这里表格初始化时，第四列默认降序
      "order": [1, 'desc'], //asc升序   desc降序 
      "aoColumnDefs": [{
        "orderable": false,
        "aTargets": [0] // 指定列不参与排序
      }],
      "deferRender": true, //延迟渲染
      //"ajax":"json/device.json",
      "ajax": {
      	url : url + '/ic-iot/users/'+userId+'/unbound/devices',//users
				type : 'get',
				dataType : 'json',
				beforeSend: function(request) {
            request.setRequestHeader("accessToken", accessToken);
        },
				success : function(data) {
					if(data['code'] == 1){
						$('#list').dataTable().fnAddData(data.result);
					}else{
						ifajax(data);
					}
				}
      }, //数据的路径 "http://192.168.5.133:8081/ic-iot/admin/'+adminId+'/devices" /"json/device.json"
      select: { //单击tr选中当前行
        style: 'multi'
      },
      
      "columns": [{ //定义列
        "data": function(obj) {
          //debugger;
          return '<input type="checkbox" class="fly-checkbox" name="sublist" ids=' + obj.deviceId + '>';
        },
        "sTitle": "<input type='checkbox' class='btn-checkall fly-checkbox'>", //标题
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      }, {
        "data": "deviceName",
        "sTitle": "设备名称", //标题
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      },{
        "data": function(obj) {
        	return getOption("deviceType",obj.deviceType);
        },
        "sTitle": "设备类型", //标题
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      },{
        "data":function(obj) {
        	return getOption("deviceStateColor",obj.deviceState);
        },
        "sTitle": "状态", //标题
        "sType": 'chinese',
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      }, {
        "data":"monitorPosition",
        "sTitle": "监测点", //标题
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      }, {
        "data": function(obj) {
           return replaceTime(obj.createTime / 1000)+'<span type="text" hidden="hidden" data='+userId+'  ></span>';
        },
        "sTitle": "创建时间", //标题
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      },/*  {
        "data": "address",
        "sTitle": "地址", //标题
        "sType": 'chinese',
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      }, {
        "data": function(obj) {
          return replaceTime(obj.joinTime / 1000);
        },
        "sTitle": "加入时间", //标题
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      }, {
        "data": function(obj) {
          if(obj.status) {
            return '<span class="label label-success radius">已启用</span>';
          } else {
            return '<span class="label label-default radius">已停用</span>';
          }
        },
        "className": "td-status",
        "sTitle": "状态", //标题
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      }, {
        "data": function(obj) {
         	return '<span title="查看" data='+obj.userId+' class="handle-btn handle-btn-edit"><i class="layui-icon">&#xe615;</i></span><span title="编辑" data='+obj.userId+' class="handle-btn handle-btn-updatepwd"><i class="linyer icon-edit"></i></span><span title="删除" id='+obj.deviceId+' class="handle-btn handle-btn-delect"><i class="linyer icon-delect"></i></span>';
          
          //<span title="启用" class="handle-btn handle-btn-run"><i class="linyer icon-qiyong"></i></span>
        },
        "className": "td-handle",
        "sTitle": "操作", //标题
        "sDefaultContent": "", //此列默认值为""，以防数据中没有此值，DataTables加载数据的时候报错  
      }*/]
    });
    /**
     * 添加falsh
     */
    $.fn.dataTable.Buttons.swfPath = "js/dataTables/extensions/Buttons/swf/flashExport.swf";
    $.fn.dataTable.Buttons.defaults.dom.container.className = 'tableTools-box';
    /**
     * 操作栏
     */
    
    //console.log(myTable);
    myTable.buttons().container().appendTo($('.tableTools'));
    
    
    /**
     * 选择
     */
    myTable.on('select', function(e, dt, type, index) {
      if(type === 'row') {
        $(myTable.row(index).node()).find('input:checkbox').prop('checked', true);
      }
    });
    /**
     * 取消选择
     */
    myTable.on('deselect', function(e, dt, type, index) {
      if(type === 'row') {
        $(myTable.row(index).node()).find('input:checkbox').prop('checked', false);
      }
    });
    /**
     * 根据表头复选框 选择/取消选择所有行
     */
    $(document).on('click', '#list > thead > tr > th input[type=checkbox],#list > tfoot > tr > th input[type=checkbox]', function() {
	      var th_checked = this.checked;
	      $('#list').find('tbody > tr').each(function() {
	        var row = this;
	        if(th_checked) myTable.row(row).select();
	        else myTable.row(row).deselect();
	      });
	   });
    /**
     * 选中/取消选中复选框时 选中/取消选中一行
     */
    $(document).on('click', '#list tbody td input[type=checkbox]', function() {
      var row = $(this).closest('tr').get(0);
      if(!this.checked) myTable.row(row).deselect();
      else myTable.row(row).select();
    });
    $(document).on('click', '#list tbody td', function() {
      var row = $(this).closest('tr').get(0);
    })
  });
	 $("#getSelected").on('click',function(){
	 	//设备ID       obj.deviceId;
   	var list = [];
   	//debugger;
   	$.each($('#list tbody tr'),function(){
   		if($(this).hasClass('selected')){
   			var id = $(this).find('input.fly-checkbox').attr('ids');
   			list.push(id);
   		}
   	});
   	Str=list.join(",");
	   $.ajax({
				type:"post",
				url: url +'/ic-iot/users/'+userId+'/device',
				data:{
					deviceIds:Str,
				},
				dataType : 'json',
				async:false,
				beforeSend: function(request) {
            request.setRequestHeader("accessToken", accessToken);
        },
				success : function(data) {
					if(data['code'] == 1){
						layer.msg(data['description']);
						setTimeout(function(){
					    	window.parent.location.reload();
					    },2000)
					}else{
						ifajax(data);
					}
				}
			});
		 })

  
  
});